Nacitani komponent z DFM souboru

Otázka od: Jiri Bouchala

24. 11. 2004 14:05

Potrebuji nacist nektere komponenty - jejich vlastnosti ze souboru form.dfm
a umistit je na TTabSheet v jinem formulari.
Poradte mi jak na to. Dik.

Odpovedá: Petr Vetesnik

25. 11. 2004 6:26

Pokud to staci v prostredi a ne pri behu programu,
pak staci CTRL+C a CTRL+V.

Petr

> Potrebuji nacist nektere komponenty - jejich vlastnosti ze souboru form.dfm
> a umistit je na TTabSheet v jinem formulari.
> Poradte mi jak na to. Dik.
>
>


Odpovedá: Jiri Bouchala

25. 11. 2004 8:28

No tak jsem to samozrejme nemyslel  
Myslenka je takova, ze vzhled formularu se navrhne v IDE a pak za behu se
zobrazi ruzne formulare v jednotlivych zalozkach (nebo i stejne s ruznymi
daty).

Pokud to staci v prostredi a ne pri behu programu,
pak staci CTRL+C a CTRL+V.

Petr

> Potrebuji nacist nektere komponenty - jejich vlastnosti ze souboru
form.dfm
> a umistit je na TTabSheet v jinem formulari.
> Poradte mi jak na to. Dik.



Odpovedá: Libor Junek, Medisoft International

25. 11. 2004 8:40

Na neco podobneho slouzi TFrame. Vytvori se vzhled primo na Frame a pak
pomoci property Parent (runtime) nebo pomoci inline v DFM (design) se
zobrazi kde je potreba.
Jinak primo cist z DFM za behu programu je (myslim) nemozne.

Libor

----- Original Message -----
From: "Jiri Bouchala" <bouchala@starmon.cz>
Sent: Thursday, November 25, 2004 8:28 AM


> Myslenka je takova, ze vzhled formularu se navrhne v IDE a pak za behu se
> zobrazi ruzne formulare v jednotlivych zalozkach (nebo i stejne s ruznymi
> daty).


Odpovedá: Petr Vetesnik

25. 11. 2004 8:42

Zdrojovy formular vytvorit jako TFrame a pak se da new a jako Owner
formular nebo treba TTabSheet.

Petr



> No tak jsem to samozrejme nemyslel  
> Myslenka je takova, ze vzhled formularu se navrhne v IDE a pak za behu se
> zobrazi ruzne formulare v jednotlivych zalozkach (nebo i stejne s ruznymi
> daty).
>


Odpovedá: Martin Burle

25. 11. 2004 8:44

> Myslenka je takova, ze vzhled formularu se navrhne v IDE a pak za behu se
> zobrazi ruzne formulare v jednotlivych zalozkach (nebo i stejne s ruznymi


Zkus umistit komponenty na panel, vytvorit formular, nasledne panelu
nastavis jako parenta zalozku z jineho formulare. Formulare, ktere si
takto zobrazis na jednotlivych zalozkach musis pak samozrejme uvolnit pred
zavrenim hlavniho formu.

HTH,

MB


Odpovedá: Tomas Krejzek

25. 11. 2004 8:56

Na tohle ti doporucuju vytvorit vlastni tridu zalozek a ty si vzdy v
pozadovane chvili vytvorit, jen pak nezapomen priradit vlastnosti Parent
referenci na tvuj PageControl
Prece nebudes spolu s apklikaci vypoustet i dfm soubory.

Tom


>No tak jsem to samozrejme nemyslel  
>Myslenka je takova, ze vzhled formularu se navrhne v IDE a pak za behu se
>zobrazi ruzne formulare v jednotlivych zalozkach (nebo i stejne s ruznymi
>daty).
>
>



Odpovedá: Zbysek Hlinka

25. 11. 2004 9:16

> -----Original Message-----
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz] On Behalf Of Jiri Bouchala
> Sent: Thursday, November 25, 2004 8:29 AM
>
> No tak jsem to samozrejme nemyslel  
> Myslenka je takova, ze vzhled formularu se navrhne v IDE a
> pak za behu se zobrazi ruzne formulare v jednotlivych
> zalozkach (nebo i stejne s ruznymi daty).

Nacitani za behu ti asi moc nepomuze, pokud ti bude chybet provazanost s
kodem. Takze doporucuji Frame. Pokud bys ale na nacitani formulare trval,
pak si muzes koupit Lokalizator, k nemu jsou ke stahnuti kompletni zdrojaky,
a tam najdes jak na to.   Je to docela opicarna a jsou s tim problemy,
pokud nemas zaregistrovane vsechny tridy, ktere formular pouziva.

S pozdravem

Zbysek Hlinka
E-mail: hlinka zavin. hlinka.cz
Phone: +420 603 551 282



Odpovedá: Pavel Poles

25. 11. 2004 13:25

No v zasade asi takhle:

      TextStream := TMemoryStream.Create;
      try
        ReadStream( FileName, TextStream );
        BinStream := TMemoryStream.Create;
        try
          BinStream.Seek( 0, soFromBeginning );
          Reader := TReader.Create( BinStream, 4096 );
            try
              Reader.ReadRootComponent( Instance );
            except
                // nepovedlo se
            end;
          finally
            Reader.Free;
          end;
        finally
          BinStream.Free;
        end;
      finally
        TextStream.Free;
      end;

Instance by mel byt toho typu, ktery mas ulozeny v tom DFM
(takze asi TForm), nebo by mel mit stejny vlastnosti (co se tyce
pojmenovani), kdyz si to budes do toho DFM i sam ukladat tak
RootComponent muze byt co chces, Delphi takhle ukladaj jen
TForm a TFrame...
Ale mel by sis udelat sveho potomka TReader ktery bude resit
eventy (v Reader.onFindMethod). Jinak DFM jsou ulozeny nekde
v resourcich, takze je nemusis distribuovat primo s programem...

Pavel Poles

----- Original Message -----
From: "Jiri Bouchala" <bouchala@starmon.cz>
To: <delphi-l@clexpert.cz>
Sent: Thursday, November 25, 2004 8:28 AM
Subject: Re: Nacitani komponent z DFM souboru


> No tak jsem to samozrejme nemyslel  
> Myslenka je takova, ze vzhled formularu se navrhne v IDE a pak za behu se
> zobrazi ruzne formulare v jednotlivych zalozkach (nebo i stejne s ruznymi
> daty).
>
> Pokud to staci v prostredi a ne pri behu programu,
> pak staci CTRL+C a CTRL+V.
>
> Petr
>
>> Potrebuji nacist nektere komponenty - jejich vlastnosti ze souboru
> form.dfm
>> a umistit je na TTabSheet v jinem formulari.
>> Poradte mi jak na to. Dik.
>
>
>
>
>